package com.zmn.plat.business.interfaces.product;

import java.util.List;

import com.zmn.common.dto.StatusDTO;
import com.zmn.plat.common.dto.product.ServSubsidiaryItemDRO;
import com.zmn.plat.model.entity.product.ServSubsidiaryItem;

/**
 * 描述:BaseCodeMapBService
 *
 * @author tanghongjun
 * @since: 2018/10/16 17:56
 */
public interface ServSubsidiaryItemBService {
    /**
     * 描述: 根据产品ID获取故障（保修）分组
     *
     * @param productId
     *            产品ID
     * @param type
     *            类型 1,故障分组；2,保修分组
     * @return
     * @auther tanghongjun
     * @since 2019/5/20 14:04
     */
    List<ServSubsidiaryItemDRO> listByProductIdAndType(Integer productId, Integer type);

    /**
     * 描述:根据故障保修项ID修改故障保修项状态
     *
     * @param itemId
     * @param status
     *            状态
     * @param updater
     *            修改者
     * @return:
     * @auther: tanghongjun
     * @since: 2018/10/22 14:02
     */
    Integer updateStatus(Integer itemId, Integer status, String updater);

    /**
     * 描述:根据故障保修项ID修改故障保修项状态
     *
     * @param servSubsidiaryItem
     * @return:
     * @auther: tanghongjun
     * @since: 2018/10/22 14:02
     */
    Integer updateStatus(ServSubsidiaryItem servSubsidiaryItem);

    /**
     * 描述:根据故障保修项ID批量修改故障保修项状态
     *
     * @param itemIds
     * @param status
     *            状态
     * @param updater
     *            修改者
     * @return:
     * @auther: tanghongjun
     * @since: 2018/10/22 14:02
     */
    Integer updateStatusBatch(List<Integer> itemIds, Integer status, String updater);

    /**
     * 描述:根据故障保修项ID批量修改故障保修项状态
     *
     * @param dto
     * @return:
     * @auther: tanghongjun
     * @since: 2018/10/22 14:08
     */
    Integer updateStatusBatch(StatusDTO dto);

}